home *** CD-ROM | disk | FTP | other *** search
- //-----------------------------------------------------------------------------
- // Torque Game Engine
- // Copyright (C) GarageGames.com, Inc.
- //-----------------------------------------------------------------------------
-
- //-----------------------------------------------------------------------------
- // RecordingsGui is the main TSControl through which the a demo game recording
- // is viewed.
- //-----------------------------------------------------------------------------
-
- function recordingsDlg::onWake()
- {
- RecordingsDlgList.clear();
- %i = 0;
- %filespec = $currentMod @ "/recordings/*.rec";
- echo(%filespec);
- for(%file = findFirstFile(%filespec); %file !$= ""; %file = findNextFile(%filespec))
- {
- %fileName = fileBase(%file);
- if (strStr(%file, "/CVS/") == -1)
- {
- RecordingsDlgList.addRow(%i++, %fileName);
- }
- }
- RecordingsDlgList.sort(0);
- RecordingsDlgList.setSelectedRow(0);
- RecordingsDlgList.scrollVisible(0);
- }
-
- function StartSelectedDemo()
- {
- // first unit is filename
- %sel = RecordingsDlgList.getSelectedId();
- %rowText = RecordingsDlgList.getRowTextById(%sel);
-
- %file = $currentMod @ "/recordings/" @ getField(%rowText, 0) @ ".rec";
-
- new GameConnection(ServerConnection);
- RootGroup.add(ServerConnection);
-
- if(ServerConnection.playDemo(%file))
- {
- Canvas.setContent(PlayGui);
- Canvas.popDialog(RecordingsDlg);
- ServerConnection.prepDemoPlayback();
- }
- else
- {
- MessageBoxOK("Playback Failed", "Demo playback failed for file '" @ %file @ "'.");
- if (isObject(ServerConnection)) {
- ServerConnection.delete();
- }
- }
- }
-
- function startDemoRecord()
- {
- // make sure that current recording stream is stopped
- ServerConnection.stopRecording();
-
- // make sure we aren't playing a demo
- if(ServerConnection.isDemoPlaying())
- return;
-
- for(%i = 0; %i < 1000; %i++)
- {
- %num = %i;
- if(%num < 10)
- %num = "0" @ %num;
- if(%num < 100)
- %num = "0" @ %num;
-
- %file = $currentMod @ "/recordings/demo" @ %num @ ".rec";
- if(!isfile(%file))
- break;
- }
- if(%i == 1000)
- return;
-
- $DemoFileName = %file;
-
- ChatHud.AddLine( "\c4Recording to file [\c2" @ $DemoFileName @ "\cr].");
-
- ServerConnection.prepDemoRecord();
- ServerConnection.startRecording($DemoFileName);
-
- // make sure start worked
- if(!ServerConnection.isDemoRecording())
- {
- deleteFile($DemoFileName);
- ChatHud.AddLine( "\c3 *** Failed to record to file [\c2" @ $DemoFileName @ "\cr].");
- $DemoFileName = "";
- }
- }
-
- function stopDemoRecord()
- {
- // make sure we are recording
- if(ServerConnection.isDemoRecording())
- {
- ChatHud.AddLine( "\c4Recording file [\c2" @ $DemoFileName @ "\cr] finished.");
- ServerConnection.stopRecording();
- }
- }
-
- function demoPlaybackComplete()
- {
- disconnect();
- Canvas.setContent("MainMenuGui");
- Canvas.pushDialog(RecordingsDlg);
- }
-